import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

// 定义一个actions,包含多个响应用户动作的回调函数
const actions = {
    // 下面的这个jia和jian函数，没有存在感，因为它里面没有任何业务逻辑
    // jia(miniStore,value){
    //     console.log('actions中的jia函数被调用了',miniStore,value);
    //     miniStore.commit('JIA',value)
    // },
    // jian(miniStore,value){
    //     miniStore.commit('JIAN',value)
    // },

    // 判断是否为奇数,为奇数再加
    incrementIfOdd(miniStore,value){
        if(miniStore.state.sum % 2){
            miniStore.commit('JIA',value);
        }
    },
    // 等一等再加
    incrementWait(miniStore,value){
        setTimeout(() => {
            miniStore.commit('JIA',value)
        }, 1000);
    }

};

// 定义一个mutations,包含多个直接更新state的方法
const mutations = {
    JIA(state,value){
        console.log('mutations中的JIA被调用了',state,value)
        state.sum += value;
    },
    JIAN(state,value){
        state.sum -= value;
    }
};

// 定义一个state 用来存储数据
const state = {
    sum : 0
};

// 创建并暴露一个store,且管理......
export default new Vuex.Store({
    actions,
    mutations,
    state,
})